package cn.iocoder.yudao.module.pplan.controller.app.recipe.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;

@Schema(description = "用户 APP - 生产计划-餐谱数据管理新增/修改 Request VO")
@Data
public class AppRecipeSaveReqVO {

    @Schema(description = "唯一标识符", requiredMode = Schema.RequiredMode.REQUIRED, example = "2206")
    private Long id;

    @Schema(description = "餐谱编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "餐谱编号不能为空")
    private String recipeCode;

    @Schema(description = "餐谱名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "餐谱名称不能为空")
    private String recipeName;

    @Schema(description = "所属航空公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "14365")
    @NotNull(message = "所属航空公司不能为空")
    private Long airlineId;

    @Schema(description = "航线类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "航线类型不能为空")
    private String airlineType;

    @Schema(description = "舱位等级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "舱位等级不能为空")
    private String cabinClass;

    @Schema(description = "餐食类别", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "餐食类别不能为空")
    private String mealService;

    @Schema(description = "对应套餐", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "对应套餐不能为空")
    private String mealSet;

    @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否启用不能为空")
    private Boolean isActive;

    @Schema(description = "有效期开始", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "有效期开始不能为空")
    private LocalDate startDate;

    @Schema(description = "有效期结束", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "有效期结束不能为空")
    private LocalDate endDate;

    @Schema(description = "备注")
    private String remarks;

}